#include <modules\system\system_window.h>

namespace DelGE
{
	namespace Modules
	{
		namespace System
		{
			SystemWindow::SystemWindow()
			{
				this->pInterface = NULL;
			}

			SystemWindow::SystemWindow(string sCaption, int iWidth, int iHeight, DelGESystemWindowStyle eStyle)
			{
				this->pInterface = new InterfaceSystemWindow(sCaption, iWidth, iHeight, eStyle);
			}

			SystemWindow::SystemWindow(InterfaceSystemWindow* pImplementation) : SystemGadget(pImplementation)
			{
				delete ((InterfaceSystemWindow*)this->pInterface);
			}

			SystemWindow::~SystemWindow()
			{
				delete (InterfaceSystemWindow*)this->pInterface;
				this->pInterface = NULL;
			}

			void SystemWindow::SetCaption(string sCaption)
			{
				((InterfaceSystemWindow*)this->pInterface)->SetCaption(sCaption);
			}
			
			string SystemWindow::GetCaption()
			{
				return ((InterfaceSystemWindow*)this->pInterface)->GetCaption();
			}

			void SystemWindow::Show()
			{
				((InterfaceSystemWindow*)this->pInterface)->Show();
			}

			void SystemWindow::Hide()
			{
				((InterfaceSystemWindow*)this->pInterface)->Hide();
			}

			void SystemWindow::SetStyle(DelGESystemWindowStyle eStyle)
			{
				((InterfaceSystemWindow*)this->pInterface)->SetStyle(eStyle);
			}

			DelGESystemWindowStyle SystemWindow::GetStyle()
			{
				return ((InterfaceSystemWindow*)this->pInterface)->GetStyle();
			}

			bool SystemWindow::IsClosed()
			{
				return ((InterfaceSystemWindow*)this->pInterface)->IsClosed();
			}
		}
	}
}